package com.atguigu.spring6.aop.example;
/**
 * TestCal 类是用于演示计算器接口代理对象使用的测试类
 * 它通过 ProxyFactory 生成 Calculator 接口的代理对象，并进行基本的算术操作
 */
public class TestCal {
    /**
     * 主函数执行基本的算术操作
     * 创建代理对象并通过该对象调用算术方法
     * @param args 命令行参数，未使用
     */
    public static void main(String[] args) {
        //创建代理对象(动态)
        ProxyFactory proxyFactory = new ProxyFactory(new CalculatorImpl());

        //通过代理工厂获取代理对象
        Calculator calculator = (Calculator) proxyFactory.getProxy();

        //执行加法操作
        calculator.add(1, 2);
        System.out.println();
        //执行减法操作
        calculator.sub(1, 2);
        System.out.println();
        //执行乘法操作
        calculator.mul(1, 2);
        System.out.println();
        //执行除法操作
        calculator.div(2, 2);
    }
}

